package com.points.system.service;

import com.points.system.domain.UserPoints;
import java.time.LocalDateTime;
import java.util.List;

public interface UserPointsService {
    /**
     * 查询用户积分
     */
    UserPoints getUserPoints(Long userId);
    
    /**
     * 充值积分
     */
    void rechargePoints(Long userId, Long points, LocalDateTime expireTime);
    
    /**
     * 消费积分
     */
    void consumePoints(Long userId, Long points);
    
    /**
     * 批量充值积分
     */
    void batchRechargePoints(List<Long> userIds, Long points, LocalDateTime expireTime);
    
    /**
     * 批量消费积分
     */
    void batchConsumePoints(List<Long> userIds, Long points);
    
    /**
     * 处理过期积分
     */
    void handleExpiredPoints();
} 